SMALLFFT.EXE eine Abgemagerte Version um die Programmierung SMALLFFT.C besser verstehen zu k”nnen! FFT.ZIP die FFT-Routinen, alt (1988) aber gut! jedoch mangelhaft dokumentiert... Kurzbeschreibung FFT.ZIP --------------------------------------------------------------------------- die aufgenommenen Werte werden im real[] Array abgelegt, das imag[] Array wird mit Nullen aufgefllt... dann werden die Globalen Variablen samples und power gesetzt: samples muá ein Potenz von 2 sein: 2,4,8,16,32,64,128,256,512,1024,2048,... int samples, power; double real[2048], imag[2048], max; samples = Anzahl aufgenommener Werte im real[]/imag[] Array; power = log10((double)samples) / log10((double)2.0); Jetzt wird die Funktion fft() ausgefhrt! dieses ist sehr schnell, extrem viel schneller als die normale FT. das Real/Imagin„r-Spektrum befindet sich danach im real[]/imag[] Array. Allerdings recht merkwrdig durcheinandergewrfelt (das ist bei FFT normal)! die permute(n) liefert uns die Position des Spektrums n in real[]/imag[] Beispiel: t=permute(n) r=real[t] i=imag[t] Betrag=sqrt(r*r + i*i) return Betrag; dieses Beispiel ist die Funktion magnitude(n), welche den Betrag liefert! Wenn wir uns eh nur fr das Betragspektrum interessieren benutzen wir also magnitude() und haben mit permute() nix mehr am Hut! Iss auch ne Rckw„rts (inverse) Fast-Fourier-Transfo m”glich? Aber klaro, laut dem schlauen FFT-Transformation Buch das ich mal kurz in den Fingern hatte ist dazu lediglich der Imagin„rteil zu invertieren, (also mit -1 zu multiplizieren), fft() aufrufen, und dann wieder den Imagin„rteil invertieren. aber dabei ist die Richtige Reihenfolge im Array wichtig (siehe permute)! fft(); for(i=0;i